/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladora;

import Entidades.Cliente;
import Persistencia.PersistenciaCliente;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
import telas.AumentarView;
import telas.FuncoesContaView;
import telas.GerenteView;

/**
 *
 * @author Thalyta
 */
public class FuncoesContaPresenter {

        private PersistenciaCliente clientes = new PersistenciaCliente();
        private FuncoesContaView telaconta ;
        
    public FuncoesContaPresenter(FuncoesContaView telacontas) {
        telaconta = telacontas;
        
       
        
       carregaAgencias(clientes.getCliente(), telaconta);
         
         
       telaconta.getBtnfechar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
                fechar();
            }
        });
     
     telaconta.getBtnBloquear().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
                
                 bloquear();
               
            }
        });
     
     telaconta.getBtnaumentar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                 aumentar();
                 
            }
        });
     telaconta.getBtndesativar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                 desativar();
                 
            }
        });
     telaconta.getBtnliberar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                 liberar();
                 
            }
        });
     
     
      telaconta.setVisible(true);
    }
    
 public void fechar(){
     
     
                 GerenteView telagerente = new GerenteView();
                 GerentePresenter cont = new GerentePresenter(telagerente);
                 telaconta.setVisible(false);
 
 }
public void bloquear(){
    
                  String nome = telaconta.getTblTabelaContas().getValueAt(telaconta.getTblTabelaContas().getSelectedRow(), 0).toString();
                  Cliente b ;
                  b = clientes.PesquisaCliente(nome);
                  b.getConta().setBloqueado(true);
                 clientes.gravaCliente();
                 telaconta.setVisible(true);
              

}
public void aumentar(){
    
    String nome = telaconta.getTblTabelaContas().getValueAt(telaconta.getTblTabelaContas().getSelectedRow(), 0).toString();
    final Cliente b ;
    b = clientes.PesquisaCliente(nome);
    final AumentarView aumentar = new AumentarView();
   aumentar.setVisible(true);
   aumentar.getBtnsalvar().addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
               
             b.getConta().setLimete(Float.parseFloat((aumentar.getTxtnovovalor().getText())));
            clientes.gravaCliente();
            aumentar.setVisible(false);
            telaconta.setVisible(true);
           ;
        }
    });
    

}
public void desativar(){
                 String nome = telaconta.getTblTabelaContas().getValueAt(telaconta.getTblTabelaContas().getSelectedRow(), 0).toString();
                  Cliente b ;
                  b = clientes.PesquisaCliente(nome);
                  b.setConta(null);
                 clientes.gravaCliente();
                 telaconta.setVisible(true);

}
public void liberar(){
                 String nome = telaconta.getTblTabelaContas().getValueAt(telaconta.getTblTabelaContas().getSelectedRow(), 0).toString();
                  Cliente b ;
                  b = clientes.PesquisaCliente(nome);
                  b.getConta().setBloqueado(false);
                 clientes.gravaCliente();
                 telaconta.setVisible(true);

}

private void carregaAgencias(ArrayList a, FuncoesContaView telaconta){
        
        
        DefaultTableModel tm = new DefaultTableModel(
                
            new Object[][]{},
            new String [] {"Nome", "Numero Conta", "Limite","Cod Agencia","Bloqueado"}){
            
        @Override
        public boolean isCellEditable(int row, int col){
            return false;
        }
     };
       
     tm.setNumRows(0);
     
      for (int i = 0; i < a.size(); i++) {
            Cliente clientes = (Cliente) a.get(i);
            tm.addRow(new Object[]{clientes.getNome(), clientes.getConta().getNumero(),clientes.getConta().getLimete(),clientes.getAgencia().getCodigo(),clientes.getConta().isBloqueado()});
            
         
     }
    telaconta.getTblTabelaContas().setModel(tm);
        
    }
  }
    

